﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommonClasses.Services
{
    /// <summary>
    /// Инкапсуляция AST-грамматики, применяемая на втором этапе компиляции.
    /// (Разбор AS-дерева, полученного после работы FirstStageGrammar)
    /// Принимает AS-дерево и возвращает преобразованное AS-дерево.
    /// </summary>
    public interface IASTTransformer
    {        
        /// <summary>
        /// Преобразовать AS-дерево.
        /// </summary>
        /// <returns>
        /// Преобразованное AS-дерево.
        /// </returns>
        /// <param name="tree">
        /// Исходное AS-дерево.
        /// </param>        
        object Parse(object tree);
    }
}
